import request from '@/utils/request/req';

/**
 * 上传朋友圈图片
 * @param image 图片文件 - 支持jpg、png、gif等常见图片格式
 * @param wxId 微信ID - 用于标识上传图片的微信账号
 * @returns Promise<{
 *   code: number; // 状态码，200表示成功
 *   msg: string; // 提示信息
 *   data: string; // 上传成功后的图片URL
 * }>
 */
export const uploadMomentsImage = (image: File, wxId: string) => {
  const formData = new FormData();
  formData.append('file', image);
  formData.append('wxId', wxId);
  return request({
    url: '/msg/moments/uploadImage',
    method: 'POST',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  });
};

/**
 * 发送图文朋友圈
 * @param params 发送参数
 * @param params.text 文字内容 - 朋友圈的文字描述，支持emoji表情
 * @param params.imgUrlList 图片URL列表 - 多个图片URL用逗号分隔，最多支持9张图片
 * @param params.isPrivate 隐私设置 - '0'表示所有人可见，'1'表示仅自己可见，默认为'0'
 * @returns Promise<{
 *   code: number; // 状态码，200表示成功
 *   msg: string; // 提示信息
 *   data: {
 *     id: string; // 朋友圈ID
 *     createTime: string; // 创建时间
 *   }
 * }>
 */
export const sendTextImageMoments = (params: { text: string; imgUrlList: string; isPrivate?: '0' | '1' }) => {
  return request({
    url: '/msg/moments/sendTextImage',
    method: 'POST',
    data: params
  });
};

/**
 * 获取朋友圈任务列表
 * @param params 查询参数
 * @param params.taskName 任务名称 - 可选
 * @param params.type 任务类型 - 可选
 * @param params.dateTime 执行时间 - 可选，格式：yyyy-MM-dd
 * @param params.wxId 微信ID - 可选
 * @param params.sopId SOP ID - 可选
 * @param params.current 当前页码 - 可选
 * @param params.size 每页大小 - 可选
 * @returns Promise<{
 *   code: number; // 状态码，200表示成功
 *   msg: string; // 提示信息
 *   data: Array<{
 *     taskId: string; // 任务ID
 *     taskName: string; // 任务名称
 *     type: string; // 任务类型
 *     executionTime: string; // 执行时间
 *     messageData: string; // 消息数据
 *     status: string; // 状态
 *     privacy: string; // 隐私设置
 *     createBy: string; // 创建人
 *     createTime: string; // 创建时间
 *     isSop: string; // 是否SOP任务
 *   }>
 * }>
 */
export const getMomentsTaskList = (params: {
  taskName?: string;
  type?: string;
  dateTime?: string;
  wxId?: string;
  sopId?: string;
  current?: number;
  size?: number;
}) => {
  return request({
    url: '/msg/groupTask/list',
    method: 'GET',
    params
  });
};

/**

 */
export const updateMomentsTask = (params: any) => {
  return request({
    url: '/msg/updateGroupTask',
    method: 'POST',
    data: params
  });
};

/**
 * 删除朋友圈任务
 * @param id 任务ID
 * @returns Promise<{
 *   code: number; // 状态码，200表示成功
 *   msg: string; // 提示信息
 * }>
 */
export const deleteMomentsTask = (id: string) => {
  return request({
    url: `/msg/deleteGroupTask/${id}`,
    method: 'POST'
  });
};

/**
 * 上传朋友圈加密图片
 * @param file 加密图片文件
 * @param wxId 微信ID - 用于标识上传图片的微信账号
 * @returns Promise<{
 *   code: number; // 状态码，200表示成功
 *   msg: string; // 提示信息
 *   data: string; // 上传成功后的图片URL
 * }>
 */
export const uploadEncryptedMomentsImage = (file: File, wxId: string) => {
  const formData = new FormData();
  formData.append('file', file);
  formData.append('wxId', wxId);
  return request({
    url: '/file/UploadFileByTwo',
    method: 'POST',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  });
};
